#define _CRT_SECURE_NO_WARNINGS 1

int min(int x1, int x2)
{
    return x1 < x2 ? x1 : x2;
}


int minCostClimbingStairs(int* cost, int costSize) {
    int n = costSize;
    int* dp = (int*)malloc(sizeof(int) * (n + 1));
    dp[0] = 0;
    dp[1] = 0;

    if (n < 2)
        return 0;
    for (int i = 2; i <= n; i++)
    {
        dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
    }
    return dp[n];
    free(dp);
}